-
Notifications
You must be signed in to change notification settings - Fork 240
trampoline functionalty #1106
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
trampoline functionalty #1106
Conversation
Co-authored-by: Salon <[email protected]>
Co-authored-by: Salon <[email protected]>
c900f83
to
4c855d6
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As mentioned on Matrix nitpicks so far, generally good stuff :)
//! examples/bouncy_trampoline.rs | ||
#![no_std] | ||
#![no_main] | ||
#![deny(warnings)] | ||
#![deny(unsafe_code)] | ||
#![deny(missing_docs)] | ||
|
||
use panic_semihosting as _; | ||
|
||
// `examples/bouncy_trampoline.rs` testing trampoline feature |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nitpick: Filename and comment are disagreeing :)
|
||
### Changed | ||
|
||
- changed (sysclk % timer_hz) == 0 to sysclk.is_multiple_of(timer_hz) to make clippy happy as required to CI. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
CI always uses latest stable Rust, so new versions bring in new lints/defaults all the time :)
Thank you for dealing with this, could you split out the 'rtic-monotonics' changes into a separate commit? If you want you could even create a separate PR for this, to help your colleague, that can be fast-tracked into master branch that way :)
Great you added to the CHANGELOG, but please add new entries above, building like a stack. Please cleanup the commentary and the double ### Changed
headers while you're at it :P
This pull request introduces a new "trampoline" feature for hardware tasks in RTIC, allowing an interrupt handler to pend another interrupt (the trampoline), which then executes the actual task code. This improves interrupt handling flexibility and source masking safety( As some exceptions can't be masked through NVIC). The implementation includes changes to parsing, code generation, and error checking for correct usage. The PR also contains a small fix to CI and a minor improvement to the rtic-monotonics crate for clippy compliance.
Trampoline Feature for Hardware Tasks
trampoline
argument in hardware task definitions, allowing the interrupt handler to pend another interrupt (the trampoline), which runs the task code. This is parsed and stored inHardwareTaskArgs
. [1] [2]Documentation and Changelog Updates
Miscellaneous Improvements
is_multiple_of()
inrtic-monotonics
for clippy compliance and CI passing. [1] [2]These changes collectively improve the flexibility and safety of interrupt handling in RTIC, while also addressing minor CI and linting issues.
For more details, see issue #1088.